Skip to content

test: Cover code with potential to overflow panic#382

Merged
romanzac merged 18 commits intomasterfrom
test-overflow-panic-cases
Mar 17, 2026
Merged

test: Cover code with potential to overflow panic#382
romanzac merged 18 commits intomasterfrom
test-overflow-panic-cases

Conversation

@romanzac
Copy link
Copy Markdown
Contributor

@romanzac romanzac commented Feb 20, 2026

Description

A batch of tests to cover places in code which may be prone to overflow or panic.

Tests modified/added

  • test_pmtree_depth_shift_overflow
  • test_pmtree_override_range_min_index_underflow
  • test_bytes_le_to_rln_proof_short
  • test_bytes_be_to_rln_proof_short
  • test_bytes_le_to_rln_proof_empty
  • test_bytes_be_to_rln_proof_empty
  • test_rln_witness_to_bigint_json_fields
  • test_length_prefix_overflow
  • test_poseidon_grain_lfsr_new_panics_on_invalid_is_field
  • test_poseidon_grain_lfsr_new_panics_on_invalid_is_sbox_an_inverse
  • test_find_poseidon_ark_and_mds_bn254_regression_no_inverse_panic
  • test_full_merkle_tree_new_depth_shift_overflow
  • test_optimal_merkle_tree_new_depth_shift_overflow
  • test_full_merkle_tree_set_range_start_overflow
  • test_optimal_merkle_tree_set_range_start_overflow
  • test_full_merkle_tree_override_range_min_index_underflow
  • test_optimal_merkle_tree_override_range_min_index_underflow

Issues reported

Coverage changed

Before 88.98%
Download HTML Report

After 88.12%
Download HTML Report

Checklist

  • My PR title follows Conventional Commits format
  • I have linked the related issue(s)
  • cargo fmt --all -- --check produces no changes
  • Clippy passes for all affected crate/feature combinations (see Linting above)
  • make test passes locally
  • No new unwrap() / expect() / panic!() in library code
  • New code includes appropriate tests (unit / integration / WASM where applicable)
  • I have run the CI coverage report — add the run-coverage label to enable it
  • All CI checks pass and the PR is marked Ready for review

@romanzac romanzac marked this pull request as ready for review February 24, 2026 04:58
@github-actions
Copy link
Copy Markdown

Benchmark for 0a33fe5

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 17.3±0.26µs 17.2±0.14µs -0.58%
FullMerkleTree::get 0.8±0.01ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 981.6±8.02µs 981.4±8.35µs -0.02%
FullMerkleTree::get_subtree_root 11.7±0.07ns 11.7±0.08ns 0.00%
FullMerkleTree::override_range 2.3±0.09ms 2.3±0.12ms 0.00%
FullMerkleTree::set 8.6±0.09µs 8.6±0.06µs 0.00%
OptimalMerkleTree::delete 19.9±0.19µs 19.9±0.21µs 0.00%
OptimalMerkleTree::get 51.1±0.50ns 50.2±0.42ns -1.76%
OptimalMerkleTree::get_empty_leaves_indices 981.2±3.44µs 981.7±9.25µs +0.05%
OptimalMerkleTree::get_subtree_root 25.8±0.20ns 25.9±0.17ns +0.39%
OptimalMerkleTree::override_range 4.1±0.22ms 4.2±0.51ms +2.44%
OptimalMerkleTree::set 10.0±0.11µs 10.0±0.16µs 0.00%
poseidon Fr/Array hash/10 139.1±0.11µs 70.2 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1494.2±1.81µs 65.4 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.1±0.02ms 64.9 KElem/sec N/A N/A
poseidon Fr/Single hash 13.8±0.07µs 69.3 MElem/sec N/A N/A

@github-actions
Copy link
Copy Markdown

Benchmark for 0a33fe5

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 13.3±0.17ms 13.3±0.13ms 0.00%
OptimalMerkleTree::::full_depth_gen 776.6±5.32µs 778.7±10.96µs +0.27%
Pmtree::delete 51.2±0.47µs 50.7±0.30µs -0.98%
Pmtree::get 354.0±6.10ns 361.6±10.61ns +2.15%
Pmtree::get_empty_leaves_indices 5.0±0.07ns 5.0±0.08ns 0.00%
Pmtree::get_subtree_root 493.2±9.20ns 501.8±11.36ns +1.74%
Pmtree::override_range 99.3±0.64µs 99.6±0.71µs +0.30%
Pmtree::set 50.9±0.59µs 50.7±0.42µs -0.39%
Set/FullMerkleTree::::set/1 515.3±5.52µs 515.3±1.79µs 0.00%
Set/FullMerkleTree::::set/10 5.2±0.03ms 5.2±0.15ms 0.00%
Set/FullMerkleTree::::set/100 51.6±0.48ms 51.7±0.32ms +0.19%
Set/FullMerkleTree::::set_range/1 515.2±5.48µs 514.4±5.70µs -0.16%
Set/FullMerkleTree::::set_range/10 701.7±2.08µs 700.4±8.25µs -0.19%
Set/FullMerkleTree::::set_range/100 1878.6±24.55µs 1874.6±28.35µs -0.21%
Set/OptimalMerkleTree::::set/1 516.7±7.69µs 518.0±4.39µs +0.25%
Set/OptimalMerkleTree::::set/10 5.2±0.02ms 5.2±0.02ms 0.00%
Set/OptimalMerkleTree::::set/100 51.8±0.42ms 51.7±0.13ms -0.19%
Set/OptimalMerkleTree::::set_range/1 515.4±3.74µs 517.0±5.09µs +0.31%
Set/OptimalMerkleTree::::set_range/10 710.0±5.55µs 707.4±5.17µs -0.37%
Set/OptimalMerkleTree::::set_range/100 1853.9±47.91µs 1846.2±33.58µs -0.42%

@github-actions
Copy link
Copy Markdown

Benchmark for cadded6

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 17.0±0.27µs 17.0±0.27µs 0.00%
FullMerkleTree::get 0.8±0.01ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 984.6±15.37µs 982.5±4.28µs -0.21%
FullMerkleTree::get_subtree_root 11.7±0.13ns 11.7±0.10ns 0.00%
FullMerkleTree::override_range 2.3±0.12ms 2.3±0.11ms 0.00%
FullMerkleTree::set 8.5±0.14µs 8.5±0.12µs 0.00%
OptimalMerkleTree::delete 20.0±0.70µs 19.8±0.30µs -1.00%
OptimalMerkleTree::get 50.5±0.36ns 51.2±0.49ns +1.39%
OptimalMerkleTree::get_empty_leaves_indices 984.0±13.87µs 985.8±20.94µs +0.18%
OptimalMerkleTree::get_subtree_root 26.1±0.25ns 26.0±0.42ns -0.38%
OptimalMerkleTree::override_range 4.2±0.50ms 4.9±0.47ms +16.67%
OptimalMerkleTree::set 10.0±0.13µs 10.0±0.35µs 0.00%
poseidon Fr/Array hash/10 139.2±0.97µs 70.2 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1490.4±2.24µs 65.5 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.0±0.07ms 64.9 KElem/sec N/A N/A
poseidon Fr/Single hash 13.8±0.03µs 69.3 MElem/sec N/A N/A

@github-actions
Copy link
Copy Markdown

Benchmark for cadded6

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 12.4±0.20ms 12.2±0.12ms -1.61%
OptimalMerkleTree::::full_depth_gen 703.2±6.15µs 699.5±20.71µs -0.53%
Pmtree::delete 50.7±0.23µs 50.8±0.74µs +0.20%
Pmtree::get 346.4±8.78ns 345.3±5.62ns -0.32%
Pmtree::get_empty_leaves_indices 5.0±0.04ns 5.0±0.08ns 0.00%
Pmtree::get_subtree_root 491.2±13.35ns 488.9±8.28ns -0.47%
Pmtree::override_range 100.6±0.61µs 100.7±1.39µs +0.10%
Pmtree::set 50.8±0.48µs 51.2±0.49µs +0.79%
Set/FullMerkleTree::::set/1 514.0±4.33µs 514.6±8.65µs +0.12%
Set/FullMerkleTree::::set/10 5.1±0.02ms 5.2±0.02ms +1.96%
Set/FullMerkleTree::::set/100 51.8±1.04ms 52.0±0.14ms +0.39%
Set/FullMerkleTree::::set_range/1 513.9±3.01µs 514.4±5.05µs +0.10%
Set/FullMerkleTree::::set_range/10 705.2±5.43µs 706.1±11.91µs +0.13%
Set/FullMerkleTree::::set_range/100 2.0±0.25ms 1861.0±39.91µs -6.95%
Set/OptimalMerkleTree::::set/1 517.0±14.62µs 515.2±5.69µs -0.35%
Set/OptimalMerkleTree::::set/10 5.2±0.02ms 5.2±0.01ms 0.00%
Set/OptimalMerkleTree::::set/100 51.8±0.17ms 51.8±0.17ms 0.00%
Set/OptimalMerkleTree::::set_range/1 515.2±5.09µs 514.7±4.26µs -0.10%
Set/OptimalMerkleTree::::set_range/10 716.5±5.99µs 720.8±6.60µs +0.60%
Set/OptimalMerkleTree::::set_range/100 1814.1±35.22µs 1816.4±51.05µs +0.13%

@romanzac romanzac added the run-coverage Runs coverage report in CI once added to the open PR. label Feb 26, 2026
@github-actions
Copy link
Copy Markdown

Benchmark for cadded6

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 17.1±0.25µs 17.0±0.25µs -0.58%
FullMerkleTree::get 0.8±0.01ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 983.4±7.85µs 982.5±5.14µs -0.09%
FullMerkleTree::get_subtree_root 11.6±0.11ns 11.6±0.13ns 0.00%
FullMerkleTree::override_range 2.3±0.11ms 2.3±0.11ms 0.00%
FullMerkleTree::set 8.5±0.14µs 8.6±0.55µs +1.18%
OptimalMerkleTree::delete 20.3±0.35µs 20.1±0.36µs -0.99%
OptimalMerkleTree::get 51.5±0.61ns 51.8±0.88ns +0.58%
OptimalMerkleTree::get_empty_leaves_indices 982.7±9.91µs 984.1±10.26µs +0.14%
OptimalMerkleTree::get_subtree_root 26.1±0.39ns 26.1±0.40ns 0.00%
OptimalMerkleTree::override_range 5.5±0.46ms 6.0±0.47ms +9.09%
OptimalMerkleTree::set 10.3±0.28µs 10.4±0.87µs +0.97%
poseidon Fr/Array hash/10 139.2±0.29µs 70.1 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1490.1±0.88µs 65.5 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.0±0.01ms 65.0 KElem/sec N/A N/A
poseidon Fr/Single hash 13.8±0.02µs 69.2 MElem/sec N/A N/A

@github-actions
Copy link
Copy Markdown

Benchmark for cadded6

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 11.8±0.16ms 11.8±0.14ms 0.00%
OptimalMerkleTree::::full_depth_gen 701.3±24.95µs 698.4±19.68µs -0.41%
Pmtree::delete 50.8±0.52µs 50.7±0.40µs -0.20%
Pmtree::get 352.2±6.76ns 345.3±6.10ns -1.96%
Pmtree::get_empty_leaves_indices 5.0±0.07ns 5.0±0.06ns 0.00%
Pmtree::get_subtree_root 494.1±8.94ns 506.0±22.04ns +2.41%
Pmtree::override_range 104.4±0.74µs 104.5±0.90µs +0.10%
Pmtree::set 50.8±0.28µs 50.7±0.64µs -0.20%
Set/FullMerkleTree::::set/1 513.8±2.43µs 514.4±3.22µs +0.12%
Set/FullMerkleTree::::set/10 5.1±0.01ms 5.2±0.10ms +1.96%
Set/FullMerkleTree::::set/100 51.8±1.23ms 51.7±0.09ms -0.19%
Set/FullMerkleTree::::set_range/1 514.9±4.06µs 513.9±3.54µs -0.19%
Set/FullMerkleTree::::set_range/10 704.1±2.77µs 705.4±3.13µs +0.18%
Set/FullMerkleTree::::set_range/100 1861.0±33.94µs 1860.7±32.80µs -0.02%
Set/OptimalMerkleTree::::set/1 514.9±5.09µs 515.3±5.68µs +0.08%
Set/OptimalMerkleTree::::set/10 5.2±0.01ms 5.2±0.03ms 0.00%
Set/OptimalMerkleTree::::set/100 52.0±0.23ms 51.8±0.07ms -0.38%
Set/OptimalMerkleTree::::set_range/1 515.5±6.21µs 515.1±5.29µs -0.08%
Set/OptimalMerkleTree::::set_range/10 725.8±5.61µs 725.9±11.59µs +0.01%
Set/OptimalMerkleTree::::set_range/100 1815.4±32.01µs 1824.9±49.96µs +0.52%

@github-actions
Copy link
Copy Markdown

Benchmark for 5f90217

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 16.9±0.17µs 16.9±0.22µs 0.00%
FullMerkleTree::get 0.8±0.01ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 1186.4±42.36µs 1196.0±22.69µs +0.81%
FullMerkleTree::get_subtree_root 12.5±0.10ns 12.5±0.17ns 0.00%
FullMerkleTree::override_range 2.6±0.04ms 2.6±0.02ms 0.00%
FullMerkleTree::set 8.5±0.09µs 8.5±0.15µs 0.00%
OptimalMerkleTree::delete 20.0±0.30µs 19.7±0.52µs -1.50%
OptimalMerkleTree::get 35.0±1.28ns 35.1±1.10ns +0.29%
OptimalMerkleTree::get_empty_leaves_indices 1186.7±22.45µs 1198.2±31.94µs +0.97%
OptimalMerkleTree::get_subtree_root 28.1±0.37ns 28.2±0.45ns +0.36%
OptimalMerkleTree::override_range 4.6±0.19ms 4.5±0.19ms -2.17%
OptimalMerkleTree::set 10.2±0.25µs 10.0±0.24µs -1.96%
poseidon Fr/Array hash/10 137.5±1.15µs 71.0 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1477.1±2.95µs 66.1 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.0±0.07ms 65.2 KElem/sec N/A N/A
poseidon Fr/Single hash 13.6±0.02µs 70.1 MElem/sec N/A N/A

@github-actions
Copy link
Copy Markdown

Benchmark for 5f90217

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 11.6±0.10ms 12.1±0.16ms +4.31%
OptimalMerkleTree::::full_depth_gen 695.4±4.57µs 703.6±4.92µs +1.18%
Pmtree::delete 50.9±0.31µs 50.7±0.21µs -0.39%
Pmtree::get 346.2±4.89ns 358.4±9.86ns +3.52%
Pmtree::get_empty_leaves_indices 5.0±0.08ns 5.0±0.09ns 0.00%
Pmtree::get_subtree_root 490.9±6.91ns 496.4±8.68ns +1.12%
Pmtree::override_range 101.4±0.75µs 102.2±1.75µs +0.79%
Pmtree::set 50.8±0.51µs 50.9±0.66µs +0.20%
Set/FullMerkleTree::::set/1 513.6±2.55µs 514.5±3.62µs +0.18%
Set/FullMerkleTree::::set/10 5.1±0.02ms 5.1±0.02ms 0.00%
Set/FullMerkleTree::::set/100 51.6±0.06ms 51.8±0.10ms +0.39%
Set/FullMerkleTree::::set_range/1 513.7±2.64µs 514.0±2.11µs +0.06%
Set/FullMerkleTree::::set_range/10 703.3±3.54µs 704.7±2.34µs +0.20%
Set/FullMerkleTree::::set_range/100 1858.5±29.38µs 1858.0±38.51µs -0.03%
Set/OptimalMerkleTree::::set/1 514.9±3.43µs 518.9±25.27µs +0.78%
Set/OptimalMerkleTree::::set/10 5.2±0.01ms 5.2±0.02ms 0.00%
Set/OptimalMerkleTree::::set/100 51.8±0.22ms 51.9±0.17ms +0.19%
Set/OptimalMerkleTree::::set_range/1 515.6±2.58µs 516.8±8.20µs +0.23%
Set/OptimalMerkleTree::::set_range/10 724.7±6.19µs 723.7±3.88µs -0.14%
Set/OptimalMerkleTree::::set_range/100 1824.8±46.96µs 1828.6±63.25µs +0.21%

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 4, 2026

Benchmark for e1002f6

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 12.8±0.12ms 11.7±0.13ms -8.59%
OptimalMerkleTree::::full_depth_gen 686.5±5.56µs 687.9±14.22µs +0.20%
Pmtree::delete 50.6±0.53µs 51.1±0.80µs +0.99%
Pmtree::get 353.2±7.31ns 357.5±6.76ns +1.22%
Pmtree::get_empty_leaves_indices 4.7±0.08ns 4.7±0.10ns 0.00%
Pmtree::get_subtree_root 507.6±9.63ns 506.2±9.40ns -0.28%
Pmtree::override_range 104.7±0.97µs 104.5±1.25µs -0.19%
Pmtree::set 51.0±2.99µs 50.7±0.88µs -0.59%
Set/FullMerkleTree::::set/1 517.7±5.44µs 515.5±4.33µs -0.42%
Set/FullMerkleTree::::set/10 5.2±0.04ms 5.2±0.01ms 0.00%
Set/FullMerkleTree::::set/100 52.0±0.08ms 52.0±0.12ms 0.00%
Set/FullMerkleTree::::set_range/1 517.4±5.77µs 517.2±5.11µs -0.04%
Set/FullMerkleTree::::set_range/10 706.9±4.34µs 706.6±3.69µs -0.04%
Set/FullMerkleTree::::set_range/100 1864.8±31.61µs 1867.3±42.71µs +0.13%
Set/OptimalMerkleTree::::set/1 517.7±5.28µs 517.4±5.41µs -0.06%
Set/OptimalMerkleTree::::set/10 5.2±0.05ms 5.2±0.01ms 0.00%
Set/OptimalMerkleTree::::set/100 52.1±0.11ms 52.0±0.08ms -0.19%
Set/OptimalMerkleTree::::set_range/1 520.5±27.12µs 518.2±5.19µs -0.44%
Set/OptimalMerkleTree::::set_range/10 724.4±6.05µs 725.7±16.83µs +0.18%
Set/OptimalMerkleTree::::set_range/100 1830.5±41.97µs 1829.4±87.04µs -0.06%

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 4, 2026

Benchmark for e1002f6

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 16.9±0.15µs 16.9±0.22µs 0.00%
FullMerkleTree::get 0.8±0.17ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 980.8±4.45µs 982.9±8.01µs +0.21%
FullMerkleTree::get_subtree_root 11.8±0.13ns 11.8±0.20ns 0.00%
FullMerkleTree::override_range 2.3±0.07ms 2.2±0.09ms -4.35%
FullMerkleTree::set 8.5±0.08µs 8.5±0.12µs 0.00%
OptimalMerkleTree::delete 19.7±0.30µs 19.8±0.54µs +0.51%
OptimalMerkleTree::get 50.6±0.50ns 51.5±0.56ns +1.78%
OptimalMerkleTree::get_empty_leaves_indices 982.0±7.78µs 985.1±21.41µs +0.32%
OptimalMerkleTree::get_subtree_root 26.1±0.35ns 26.1±0.48ns 0.00%
OptimalMerkleTree::override_range 4.6±0.35ms 4.8±0.26ms +4.35%
OptimalMerkleTree::set 9.9±0.16µs 10.0±0.19µs +1.01%
poseidon Fr/Array hash/10 140.8±0.60µs 69.3 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1505.2±19.05µs 64.9 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.1±0.02ms 64.6 KElem/sec N/A N/A
poseidon Fr/Single hash 13.8±0.02µs 69.0 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 603.9±39.51µs 590.5±22.02µs -2.22%
validate_override_range/FullMerkleTree/override_range/64 94.3±10.47µs 99.4±17.61µs +5.41%
validate_override_range/FullMerkleTree/override_range/65536 417.1±5.80ms 415.5±3.84ms -0.38%
validate_override_range/FullMerkleTree/override_range/8192 8.7±0.04ms 8.8±0.05ms +1.15%
validate_override_range/OptimalMerkleTree/override_range/1024 803.9±31.93µs 795.9±31.42µs -1.00%
validate_override_range/OptimalMerkleTree/override_range/64 137.6±25.25µs 122.3±12.53µs -11.12%
validate_override_range/OptimalMerkleTree/override_range/65536 460.7±1.30ms 458.4±1.73ms -0.50%
validate_override_range/OptimalMerkleTree/override_range/8192 10.3±0.26ms 10.2±0.07ms -0.97%
validate_override_range/validate_only/1024 10.6±0.16µs 10.7±0.10µs +0.94%
validate_override_range/validate_only/64 343.4±2.50ns 346.1±4.90ns +0.79%
validate_override_range/validate_only/65536 851.8±16.78µs 848.7±9.02µs -0.36%
validate_override_range/validate_only/8192 104.4±1.18µs 103.2±1.35µs -1.15%

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 9, 2026

Benchmark for fa98dfc

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 11.6±0.13ms 11.5±0.10ms -0.86%
OptimalMerkleTree::::full_depth_gen 700.7±5.79µs 697.7±10.78µs -0.43%
Pmtree::delete 50.3±0.69µs 50.6±1.25µs +0.60%
Pmtree::get 288.5±3.99ns 287.3±9.20ns -0.42%
Pmtree::get_empty_leaves_indices 5.0±0.08ns 5.0±0.09ns 0.00%
Pmtree::get_subtree_root 366.0±6.46ns 371.9±7.11ns +1.61%
Pmtree::override_range 103.6±0.84µs 103.1±0.79µs -0.48%
Pmtree::set 50.4±0.70µs 50.4±0.43µs 0.00%
Set/FullMerkleTree::::set/1 521.1±4.55µs 520.7±4.89µs -0.08%
Set/FullMerkleTree::::set/10 5.2±0.04ms 5.2±0.01ms 0.00%
Set/FullMerkleTree::::set/100 52.4±0.09ms 52.4±0.11ms 0.00%
Set/FullMerkleTree::::set_range/1 521.2±2.89µs 520.5±5.35µs -0.13%
Set/FullMerkleTree::::set_range/10 712.0±5.57µs 710.8±3.04µs -0.17%
Set/FullMerkleTree::::set_range/100 1869.5±34.85µs 1867.1±37.56µs -0.13%
Set/OptimalMerkleTree::::set/1 521.3±3.53µs 522.2±8.42µs +0.17%
Set/OptimalMerkleTree::::set/10 5.2±0.01ms 5.2±0.02ms 0.00%
Set/OptimalMerkleTree::::set/100 52.5±0.32ms 52.6±0.82ms +0.19%
Set/OptimalMerkleTree::::set_range/1 521.3±4.41µs 521.5±5.79µs +0.04%
Set/OptimalMerkleTree::::set_range/10 730.1±8.32µs 728.3±6.68µs -0.25%
Set/OptimalMerkleTree::::set_range/100 1826.3±41.69µs 1828.5±37.14µs +0.12%

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 9, 2026

Benchmark for fa98dfc

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 17.0±0.25µs 16.9±0.24µs -0.59%
FullMerkleTree::get 0.8±0.01ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 1052.5±19.48µs 1075.5±43.68µs +2.19%
FullMerkleTree::get_subtree_root 12.5±0.10ns 12.6±0.31ns +0.80%
FullMerkleTree::override_range 2.6±0.03ms 2.6±0.06ms 0.00%
FullMerkleTree::set 8.5±0.09µs 8.5±0.17µs 0.00%
OptimalMerkleTree::delete 20.0±0.53µs 19.7±0.33µs -1.50%
OptimalMerkleTree::get 36.6±0.98ns 35.5±0.56ns -3.01%
OptimalMerkleTree::get_empty_leaves_indices 1095.5±19.96µs 1167.7±26.49µs +6.59%
OptimalMerkleTree::get_subtree_root 28.2±0.30ns 28.0±0.25ns -0.71%
OptimalMerkleTree::override_range 5.2±0.18ms 4.9±0.12ms -5.77%
OptimalMerkleTree::set 10.1±0.29µs 10.1±0.50µs 0.00%
poseidon Fr/Array hash/10 136.8±0.55µs 71.4 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1475.5±5.31µs 66.2 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.0±0.08ms 65.3 KElem/sec N/A N/A
poseidon Fr/Single hash 13.5±0.02µs 70.5 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 612.6±25.13µs 606.7±22.96µs -0.96%
validate_override_range/FullMerkleTree/override_range/64 100.3±14.23µs 100.2±9.05µs -0.10%
validate_override_range/FullMerkleTree/override_range/65536 610.0±3.14ms 609.2±2.59ms -0.13%
validate_override_range/FullMerkleTree/override_range/8192 10.3±0.10ms 10.3±0.08ms 0.00%
validate_override_range/OptimalMerkleTree/override_range/1024 828.1±14.09µs 824.1±20.25µs -0.48%
validate_override_range/OptimalMerkleTree/override_range/64 132.2±10.87µs 130.1±9.72µs -1.59%
validate_override_range/OptimalMerkleTree/override_range/65536 629.4±3.66ms 628.5±4.16ms -0.14%
validate_override_range/OptimalMerkleTree/override_range/8192 12.4±0.23ms 11.8±0.24ms -4.84%
validate_override_range/validate_only/1024 8.2±0.21µs 8.1±0.14µs -1.22%
validate_override_range/validate_only/64 342.7±3.52ns 349.1±5.93ns +1.87%
validate_override_range/validate_only/65536 863.6±8.09µs 877.7±21.97µs +1.63%
validate_override_range/validate_only/8192 84.4±0.74µs 83.5±1.34µs -1.07%

@vinhtc27 vinhtc27 removed their request for review March 17, 2026 04:27
@github-actions
Copy link
Copy Markdown

Benchmark for b42d79c

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 11.8±0.08ms 12.7±0.13ms +7.63%
OptimalMerkleTree::::full_depth_gen 691.1±11.51µs 689.5±14.17µs -0.23%
Pmtree::delete 50.5±1.21µs 50.7±0.90µs +0.40%
Pmtree::get 288.9±4.08ns 293.7±5.15ns +1.66%
Pmtree::get_empty_leaves_indices 8.7±0.16ns 8.4±0.13ns -3.45%
Pmtree::get_subtree_root 389.0±7.58ns 366.2±5.56ns -5.86%
Pmtree::override_range 103.6±1.32µs 103.6±3.11µs 0.00%
Pmtree::set 50.4±0.48µs 50.6±0.74µs +0.40%
Set/FullMerkleTree::::set/1 519.0±13.03µs 516.5±5.85µs -0.48%
Set/FullMerkleTree::::set/10 5.2±0.03ms 5.2±0.11ms 0.00%
Set/FullMerkleTree::::set/100 52.2±0.07ms 52.1±0.12ms -0.19%
Set/FullMerkleTree::::set_range/1 518.4±2.52µs 520.4±11.57µs +0.39%
Set/FullMerkleTree::::set_range/10 709.1±4.67µs 707.6±4.34µs -0.21%
Set/FullMerkleTree::::set_range/100 1866.8±35.46µs 1871.5±76.48µs +0.25%
Set/OptimalMerkleTree::::set/1 523.5±10.17µs 520.6±12.60µs -0.55%
Set/OptimalMerkleTree::::set/10 5.2±0.02ms 5.2±0.03ms 0.00%
Set/OptimalMerkleTree::::set/100 52.7±1.32ms 52.1±0.17ms -1.14%
Set/OptimalMerkleTree::::set_range/1 521.1±5.93µs 517.6±5.88µs -0.67%
Set/OptimalMerkleTree::::set_range/10 721.7±9.48µs 725.7±8.82µs +0.55%
Set/OptimalMerkleTree::::set_range/100 1827.2±54.39µs 1822.1±35.89µs -0.28%
rln_finish_partial_proof 67.2±0.77ms 68.0±2.33ms +1.19%
rln_full_proof 183.6±1.49ms 184.0±1.90ms +0.22%
rln_partial_proof_generation 127.2±1.24ms 128.0±3.02ms +0.63%

@vinhtc27
Copy link
Copy Markdown
Contributor

vinhtc27 commented Mar 17, 2026

@romanzac Hey, I think we can remove these #[should_panic] test cases: test_poseidon_grain_lfsr_new_panics_on_invalid_is_field and test_poseidon_grain_lfsr_new_panics_on_invalid_is_sbox_an_inverse
Cuz they already have the assert! macro in the ::new() method. No reason to add testcase for it.

And I added some fixes for other failed test cases.
If there are no other test cases, we can remove the two above, and then I'll approve this PR.
(Cuz it needs the last modifier NOT to be the approver to approve PR)

@github-actions
Copy link
Copy Markdown

Benchmark for b42d79c

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 17.0±0.20µs 17.0±0.19µs 0.00%
FullMerkleTree::get 0.8±0.01ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 982.1±6.03µs 982.3±5.17µs +0.02%
FullMerkleTree::get_subtree_root 11.6±0.15ns 11.6±0.20ns 0.00%
FullMerkleTree::override_range 2.2±0.07ms 2.3±0.08ms +4.55%
FullMerkleTree::set 8.5±0.18µs 8.5±0.12µs 0.00%
OptimalMerkleTree::delete 19.8±0.19µs 20.0±0.48µs +1.01%
OptimalMerkleTree::get 50.9±0.36ns 50.7±0.59ns -0.39%
OptimalMerkleTree::get_empty_leaves_indices 982.4±5.60µs 982.4±9.25µs 0.00%
OptimalMerkleTree::get_subtree_root 25.9±0.25ns 25.9±0.41ns 0.00%
OptimalMerkleTree::override_range 4.5±0.28ms 5.1±0.35ms +13.33%
OptimalMerkleTree::set 10.0±0.17µs 10.0±0.19µs 0.00%
poseidon Fr/Array hash/10 138.8±0.18µs 70.4 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1493.4±1.71µs 65.4 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.1±0.01ms 64.9 KElem/sec N/A N/A
poseidon Fr/Single hash 13.8±0.02µs 69.3 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 586.1±27.19µs 595.0±36.60µs +1.52%
validate_override_range/FullMerkleTree/override_range/64 94.8±12.70µs 99.4±17.29µs +4.85%
validate_override_range/FullMerkleTree/override_range/65536 437.3±1.09ms 433.3±0.72ms -0.91%
validate_override_range/FullMerkleTree/override_range/8192 8.8±0.08ms 8.7±0.07ms -1.14%
validate_override_range/OptimalMerkleTree/override_range/1024 804.9±60.58µs 795.6±55.01µs -1.16%
validate_override_range/OptimalMerkleTree/override_range/64 131.9±23.87µs 138.4±25.96µs +4.93%
validate_override_range/OptimalMerkleTree/override_range/65536 460.1±1.63ms 464.3±3.51ms +0.91%
validate_override_range/OptimalMerkleTree/override_range/8192 10.3±0.23ms 10.3±0.22ms 0.00%
validate_override_range/validate_only/1024 8.0±0.06µs 8.0±0.12µs 0.00%
validate_override_range/validate_only/64 345.5±13.56ns 343.7±4.63ns -0.52%
validate_override_range/validate_only/65536 847.4±9.99µs 843.7±4.36µs -0.44%
validate_override_range/validate_only/8192 112.9±1.54µs 102.9±0.63µs -8.86%

@github-actions
Copy link
Copy Markdown

Benchmark for 60aab1b

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 16.8±0.42ms 16.7±0.54ms -0.60%
OptimalMerkleTree::::full_depth_gen 843.0±13.64µs 853.7±22.82µs +1.27%
Pmtree::delete 49.0±1.03µs 49.0±0.27µs 0.00%
Pmtree::get 293.2±5.87ns 293.2±4.62ns 0.00%
Pmtree::get_empty_leaves_indices 8.2±0.09ns 7.9±0.09ns -3.66%
Pmtree::get_subtree_root 363.3±4.02ns 363.4±9.80ns +0.03%
Pmtree::override_range 97.5±1.28µs 97.7±1.30µs +0.21%
Pmtree::set 48.9±0.89µs 49.0±0.42µs +0.20%
Set/FullMerkleTree::::set/1 510.2±3.73µs 512.5±6.97µs +0.45%
Set/FullMerkleTree::::set/10 5.1±0.01ms 5.1±0.01ms 0.00%
Set/FullMerkleTree::::set/100 51.2±0.17ms 51.5±0.08ms +0.59%
Set/FullMerkleTree::::set_range/1 511.3±8.16µs 524.9±14.00µs +2.66%
Set/FullMerkleTree::::set_range/10 694.4±7.16µs 697.5±4.05µs +0.45%
Set/FullMerkleTree::::set_range/100 1974.4±26.35µs 1973.1±21.25µs -0.07%
Set/OptimalMerkleTree::::set/1 510.0±3.60µs 512.2±3.58µs +0.43%
Set/OptimalMerkleTree::::set/10 5.1±0.01ms 5.1±0.02ms 0.00%
Set/OptimalMerkleTree::::set/100 51.2±0.09ms 51.5±0.19ms +0.59%
Set/OptimalMerkleTree::::set_range/1 510.2±6.98µs 514.9±8.23µs +0.92%
Set/OptimalMerkleTree::::set_range/10 729.2±6.41µs 735.3±11.76µs +0.84%
Set/OptimalMerkleTree::::set_range/100 1933.7±22.57µs 1945.2±25.10µs +0.59%
rln_finish_partial_proof 77.7±1.35ms 77.6±1.21ms -0.13%
rln_full_proof 210.8±2.49ms 210.0±2.62ms -0.38%
rln_partial_proof_generation 144.9±1.76ms 144.8±2.42ms -0.07%

@github-actions
Copy link
Copy Markdown

Benchmark for 60aab1b

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 16.9±0.37µs 17.2±0.16µs +1.78%
FullMerkleTree::get 0.8±0.01ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 982.5±8.17µs 982.8±8.88µs +0.03%
FullMerkleTree::get_subtree_root 11.6±0.12ns 12.7±1.74ns +9.48%
FullMerkleTree::override_range 2.3±0.06ms 2.3±0.08ms 0.00%
FullMerkleTree::set 8.5±0.17µs 8.6±0.14µs +1.18%
OptimalMerkleTree::delete 19.9±0.28µs 20.1±0.50µs +1.01%
OptimalMerkleTree::get 50.9±0.46ns 52.6±2.87ns +3.34%
OptimalMerkleTree::get_empty_leaves_indices 982.6±7.70µs 983.4±11.95µs +0.08%
OptimalMerkleTree::get_subtree_root 26.1±0.36ns 28.0±3.07ns +7.28%
OptimalMerkleTree::override_range 5.0±0.24ms 5.2±0.45ms +4.00%
OptimalMerkleTree::set 10.2±0.19µs 10.1±0.18µs -0.98%
poseidon Fr/Array hash/10 138.9±0.47µs 70.3 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1496.5±5.69µs 65.3 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.1±0.01ms 64.8 KElem/sec N/A N/A
poseidon Fr/Single hash 13.8±0.03µs 69.1 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 605.2±37.27µs 611.0±27.63µs +0.96%
validate_override_range/FullMerkleTree/override_range/64 97.8±15.93µs 92.9±7.27µs -5.01%
validate_override_range/FullMerkleTree/override_range/65536 416.2±1.62ms 435.7±0.90ms +4.69%
validate_override_range/FullMerkleTree/override_range/8192 8.7±0.05ms 9.0±0.04ms +3.45%
validate_override_range/OptimalMerkleTree/override_range/1024 808.4±39.83µs 816.7±46.47µs +1.03%
validate_override_range/OptimalMerkleTree/override_range/64 126.2±19.37µs 130.2±23.44µs +3.17%
validate_override_range/OptimalMerkleTree/override_range/65536 463.3±1.97ms 466.6±4.85ms +0.71%
validate_override_range/OptimalMerkleTree/override_range/8192 10.5±0.22ms 10.7±0.33ms +1.90%
validate_override_range/validate_only/1024 10.6±0.15µs 8.1±0.25µs -23.58%
validate_override_range/validate_only/64 339.4±2.81ns 345.9±6.67ns +1.92%
validate_override_range/validate_only/65536 843.4±5.65µs 844.5±8.79µs +0.13%
validate_override_range/validate_only/8192 102.4±1.95µs 102.9±1.56µs +0.49%

@github-actions
Copy link
Copy Markdown

Benchmark for 70186a9

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 12.8±0.10ms 12.9±0.16ms +0.78%
OptimalMerkleTree::::full_depth_gen 697.2±9.94µs 696.2±6.73µs -0.14%
Pmtree::delete 50.3±0.50µs 50.7±0.37µs +0.80%
Pmtree::get 292.6±2.95ns 300.0±5.16ns +2.53%
Pmtree::get_empty_leaves_indices 8.7±0.11ns 8.4±0.14ns -3.45%
Pmtree::get_subtree_root 367.7±4.54ns 368.7±6.19ns +0.27%
Pmtree::override_range 100.0±0.71µs 100.3±0.69µs +0.30%
Pmtree::set 50.3±0.35µs 50.7±0.51µs +0.80%
Set/FullMerkleTree::::set/1 518.1±4.48µs 517.5±3.73µs -0.12%
Set/FullMerkleTree::::set/10 5.2±0.01ms 5.2±0.01ms 0.00%
Set/FullMerkleTree::::set/100 52.2±0.11ms 52.1±0.16ms -0.19%
Set/FullMerkleTree::::set_range/1 520.3±6.95µs 518.2±4.12µs -0.40%
Set/FullMerkleTree::::set_range/10 711.0±3.39µs 708.1±3.42µs -0.41%
Set/FullMerkleTree::::set_range/100 1859.7±35.50µs 1859.8±41.76µs +0.01%
Set/OptimalMerkleTree::::set/1 519.0±5.16µs 518.9±4.03µs -0.02%
Set/OptimalMerkleTree::::set/10 5.2±0.01ms 5.2±0.01ms 0.00%
Set/OptimalMerkleTree::::set/100 52.2±0.21ms 52.2±0.07ms 0.00%
Set/OptimalMerkleTree::::set_range/1 518.5±3.01µs 519.4±5.31µs +0.17%
Set/OptimalMerkleTree::::set_range/10 721.7±7.32µs 721.3±19.19µs -0.06%
Set/OptimalMerkleTree::::set_range/100 1823.6±36.51µs 1814.0±34.54µs -0.53%
rln_finish_partial_proof 67.2±0.82ms 67.5±0.91ms +0.45%
rln_full_proof 183.6±3.07ms 184.9±2.28ms +0.71%
rln_partial_proof_generation 126.7±1.93ms 128.5±2.53ms +1.42%

@github-actions
Copy link
Copy Markdown

Benchmark for 70186a9

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 17.0±0.26µs 16.9±0.20µs -0.59%
FullMerkleTree::get 0.8±0.00ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 982.1±8.42µs 981.5±4.41µs -0.06%
FullMerkleTree::get_subtree_root 11.6±0.11ns 11.6±0.12ns 0.00%
FullMerkleTree::override_range 2.3±0.08ms 2.3±0.10ms 0.00%
FullMerkleTree::set 8.5±0.13µs 8.5±0.15µs 0.00%
OptimalMerkleTree::delete 19.8±0.23µs 20.0±0.38µs +1.01%
OptimalMerkleTree::get 51.2±0.49ns 50.5±0.50ns -1.37%
OptimalMerkleTree::get_empty_leaves_indices 982.5±8.89µs 982.6±9.50µs +0.01%
OptimalMerkleTree::get_subtree_root 26.0±0.25ns 26.0±0.21ns 0.00%
OptimalMerkleTree::override_range 4.8±0.21ms 4.8±0.33ms 0.00%
OptimalMerkleTree::set 9.9±0.12µs 10.1±0.90µs +2.02%
poseidon Fr/Array hash/10 139.4±0.20µs 70.1 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1501.2±2.10µs 65.1 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.1±0.01ms 64.6 KElem/sec N/A N/A
poseidon Fr/Single hash 13.8±0.02µs 69.0 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 598.1±68.49µs 588.3±29.43µs -1.64%
validate_override_range/FullMerkleTree/override_range/64 92.7±8.33µs 104.2±18.54µs +12.41%
validate_override_range/FullMerkleTree/override_range/65536 437.7±1.35ms 437.4±1.77ms -0.07%
validate_override_range/FullMerkleTree/override_range/8192 8.7±0.07ms 8.7±0.05ms 0.00%
validate_override_range/OptimalMerkleTree/override_range/1024 796.5±45.17µs 792.8±42.14µs -0.46%
validate_override_range/OptimalMerkleTree/override_range/64 133.3±22.92µs 130.4±20.87µs -2.18%
validate_override_range/OptimalMerkleTree/override_range/65536 460.2±3.39ms 462.7±3.21ms +0.54%
validate_override_range/OptimalMerkleTree/override_range/8192 10.2±0.15ms 10.2±0.20ms 0.00%
validate_override_range/validate_only/1024 8.0±0.14µs 10.6±0.15µs +32.50%
validate_override_range/validate_only/64 345.5±5.04ns 352.0±3.00ns +1.88%
validate_override_range/validate_only/65536 845.9±5.98µs 843.1±7.75µs -0.33%
validate_override_range/validate_only/8192 102.4±1.69µs 112.8±1.32µs +10.16%

Copy link
Copy Markdown
Contributor

@vinhtc27 vinhtc27 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, Thank you!

@github-actions
Copy link
Copy Markdown

Coverage report uploaded. Download HTML Report

@github-actions
Copy link
Copy Markdown

Benchmark for f585eef

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 12.6±0.17ms 11.5±0.15ms -8.73%
OptimalMerkleTree::::full_depth_gen 697.6±4.95µs 690.1±9.43µs -1.08%
Pmtree::delete 50.4±0.81µs 50.7±0.50µs +0.60%
Pmtree::get 293.8±5.19ns 297.5±8.11ns +1.26%
Pmtree::get_empty_leaves_indices 8.7±0.14ns 8.4±0.13ns -3.45%
Pmtree::get_subtree_root 374.7±7.73ns 365.3±6.10ns -2.51%
Pmtree::override_range 100.8±0.84µs 100.8±0.89µs 0.00%
Pmtree::set 50.3±0.38µs 50.7±0.80µs +0.80%
Set/FullMerkleTree::::set/1 517.2±2.13µs 519.0±5.53µs +0.35%
Set/FullMerkleTree::::set/10 5.2±0.01ms 5.2±0.04ms 0.00%
Set/FullMerkleTree::::set/100 52.0±0.18ms 52.1±0.15ms +0.19%
Set/FullMerkleTree::::set_range/1 518.2±5.19µs 518.0±6.19µs -0.04%
Set/FullMerkleTree::::set_range/10 711.4±26.80µs 707.6±2.41µs -0.53%
Set/FullMerkleTree::::set_range/100 1863.8±47.19µs 1859.3±40.56µs -0.24%
Set/OptimalMerkleTree::::set/1 519.1±3.66µs 519.2±5.56µs +0.02%
Set/OptimalMerkleTree::::set/10 5.2±0.01ms 5.2±0.02ms 0.00%
Set/OptimalMerkleTree::::set/100 52.1±0.11ms 52.3±0.13ms +0.38%
Set/OptimalMerkleTree::::set_range/1 518.9±5.20µs 519.0±2.21µs +0.02%
Set/OptimalMerkleTree::::set_range/10 722.0±8.46µs 721.8±5.32µs -0.03%
Set/OptimalMerkleTree::::set_range/100 1816.8±40.24µs 1826.5±84.44µs +0.53%
rln_finish_partial_proof 67.1±0.77ms 67.4±0.89ms +0.45%
rln_full_proof 185.1±7.61ms 185.7±7.46ms +0.32%
rln_partial_proof_generation 127.0±1.19ms 127.5±2.07ms +0.39%

@github-actions
Copy link
Copy Markdown

Benchmark for f585eef

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 17.2±0.62µs 16.9±0.21µs -1.74%
FullMerkleTree::get 0.8±0.01ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 983.4±9.08µs 985.4±21.99µs +0.20%
FullMerkleTree::get_subtree_root 11.6±0.12ns 11.7±0.44ns +0.86%
FullMerkleTree::override_range 2.3±0.13ms 2.3±0.08ms 0.00%
FullMerkleTree::set 8.5±0.07µs 8.5±0.09µs 0.00%
OptimalMerkleTree::delete 20.1±0.33µs 20.4±1.73µs +1.49%
OptimalMerkleTree::get 51.5±0.61ns 50.7±0.48ns -1.55%
OptimalMerkleTree::get_empty_leaves_indices 983.0±8.32µs 984.0±10.80µs +0.10%
OptimalMerkleTree::get_subtree_root 25.7±0.47ns 26.2±0.39ns +1.95%
OptimalMerkleTree::override_range 6.1±0.22ms 5.6±0.21ms -8.20%
OptimalMerkleTree::set 10.3±0.22µs 10.3±0.38µs 0.00%
poseidon Fr/Array hash/10 139.2±1.32µs 70.2 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1495.6±2.05µs 65.3 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.1±0.03ms 64.8 KElem/sec N/A N/A
poseidon Fr/Single hash 13.8±0.05µs 69.3 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 599.3±36.17µs 608.8±37.75µs +1.59%
validate_override_range/FullMerkleTree/override_range/64 100.6±18.02µs 92.8±6.59µs -7.75%
validate_override_range/FullMerkleTree/override_range/65536 437.6±1.66ms 433.9±8.98ms -0.85%
validate_override_range/FullMerkleTree/override_range/8192 8.8±0.15ms 8.9±0.08ms +1.14%
validate_override_range/OptimalMerkleTree/override_range/1024 813.0±53.23µs 802.5±33.65µs -1.29%
validate_override_range/OptimalMerkleTree/override_range/64 128.4±22.41µs 119.2±4.42µs -7.17%
validate_override_range/OptimalMerkleTree/override_range/65536 468.2±3.63ms 466.5±3.90ms -0.36%
validate_override_range/OptimalMerkleTree/override_range/8192 11.9±0.54ms 11.1±0.68ms -6.72%
validate_override_range/validate_only/1024 10.6±0.22µs 10.6±0.11µs 0.00%
validate_override_range/validate_only/64 342.3±4.27ns 354.4±5.29ns +3.53%
validate_override_range/validate_only/65536 854.2±21.76µs 847.2±4.38µs -0.82%
validate_override_range/validate_only/8192 103.2±1.56µs 103.0±1.06µs -0.19%

@github-actions
Copy link
Copy Markdown

Coverage report uploaded. Download HTML Report

@romanzac romanzac merged commit 6c4f869 into master Mar 17, 2026
21 checks passed
@romanzac romanzac deleted the test-overflow-panic-cases branch March 17, 2026 05:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-coverage Runs coverage report in CI once added to the open PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants